#ifndef __USER_GPIO_H__
#define __USER_GPIO_H__

#include "main.h"







#define LED0_GPIO   			GPIOA
#define LED0_PIN    			FL_GPIO_PIN_14
#define LED1_GPIO   			GPIOA
#define LED1_PIN    			FL_GPIO_PIN_0
#define LED2_GPIO   			GPIOA
#define LED2_PIN    			FL_GPIO_PIN_1
#define LED3_GPIO   			GPIOA
#define LED3_PIN    			FL_GPIO_PIN_4
#define LED4_GPIO   			GPIOA
#define LED4_PIN    			FL_GPIO_PIN_7
#define LED5_GPIO   			GPIOA
#define LED5_PIN    			FL_GPIO_PIN_8

#define RS485_EN_GPIO   		GPIOB
#define RS485_EN_PIN    		FL_GPIO_PIN_4

#define COMMU_IN1_GPIO   		GPIOD
#define COMMU_IN1_PIN    		FL_GPIO_PIN_6
#define COMMU_IN2_GPIO  		GPIOD
#define COMMU_IN2_PIN   		FL_GPIO_PIN_9
#define COMMU_IN3_GPIO  		GPIOC
#define COMMU_IN3_PIN   		FL_GPIO_PIN_10

#define NB_PW_EN_Pin 	 		FL_GPIO_PIN_10
#define NB_PW_EN_GPIO_Port 		GPIOD
#define DIO0_RSTN1_Pin 			FL_GPIO_PIN_4
#define DIO0_RSTN1_GPIO_Port 	GPIOC
#define DIO1_WK_UP1_Pin 		FL_GPIO_PIN_5
#define DIO1_WK_UP1_GPIO_Port 	GPIOC
#define DIO2_AT1_Pin 			FL_GPIO_PIN_6
#define DIO2_AT1_GPIO_Port 		GPIOC
#define NB_MCU_RESET_Pin 		FL_GPIO_PIN_7
#define NB_MCU_RESET_GPIO_Port 	GPIOC
#define PSM_EINT3V3_Pin 		FL_GPIO_PIN_8
#define PSM_EINT3V3_GPIO_Port 	GPIOC
#define MCU_POWKEY_Pin 			FL_GPIO_PIN_9
#define MCU_POWKEY_GPIO_Port 	GPIOA

#define I2C_SDA_Pin 			FL_GPIO_PIN_5
#define I2C_SDA_GPIO_Port 		GPIOA
#define I2C_SCL_Pin 			FL_GPIO_PIN_6
#define I2C_SCL_GPIO_Port 		GPIOA

#define PMS200C_RESETN_Pin 				FL_GPIO_PIN_0
#define PMS200C_RESETN_GPIO_Port 		GPIOC
#define PMS200C_SLEEP_Pin 				FL_GPIO_PIN_1
#define PMS200C_SLEEP_GPIO_Port 		GPIOC

#define WAKEUP0_Pin 			FL_GPIO_PIN_15
#define WAKEUP0_GPIO_Port 		GPIOA

#define LED0_ON   FL_GPIO_ResetOutputPin(LED0_GPIO, LED0_PIN)
#define LED0_OFF  FL_GPIO_SetOutputPin(LED0_GPIO, LED0_PIN)
#define LED0_TOG  FL_GPIO_ToggleOutputPin(LED0_GPIO, LED0_PIN)		
#define LED1_ON   FL_GPIO_ResetOutputPin(LED1_GPIO, LED1_PIN)
#define LED1_OFF  FL_GPIO_SetOutputPin(LED1_GPIO, LED1_PIN)
#define LED1_TOG  FL_GPIO_ToggleOutputPin(LED1_GPIO, LED1_PIN)
#define LED2_ON   FL_GPIO_ResetOutputPin(LED2_GPIO, LED2_PIN)
#define LED2_OFF  FL_GPIO_SetOutputPin(LED2_GPIO, LED2_PIN)
#define LED2_TOG  FL_GPIO_ToggleOutputPin(LED2_GPIO, LED2_PIN)	
#define LED3_ON   FL_GPIO_ResetOutputPin(LED3_GPIO, LED3_PIN)
#define LED3_OFF  FL_GPIO_SetOutputPin(LED3_GPIO, LED3_PIN)
#define LED3_TOG  FL_GPIO_ToggleOutputPin(LED3_GPIO, LED3_PIN)	
#define LED4_ON   FL_GPIO_ResetOutputPin(LED4_GPIO, LED4_PIN)
#define LED4_OFF  FL_GPIO_SetOutputPin(LED4_GPIO, LED4_PIN)
#define LED4_TOG  FL_GPIO_ToggleOutputPin(LED4_GPIO, LED4_PIN)	
#define LED5_ON   FL_GPIO_ResetOutputPin(LED5_GPIO, LED5_PIN)
#define LED5_OFF  FL_GPIO_SetOutputPin(LED5_GPIO, LED5_PIN)
#define LED5_TOG  FL_GPIO_ToggleOutputPin(LED5_GPIO, LED5_PIN)	

#define RS485_EN_ON  	FL_GPIO_SetOutputPin(RS485_EN_GPIO,RS485_EN_PIN)
#define RS485_EN_OFF  	FL_GPIO_ResetOutputPin(RS485_EN_GPIO,RS485_EN_PIN)


#define BC26_POWKEY_H 		FL_GPIO_SetOutputPin(MCU_POWKEY_GPIO_Port,MCU_POWKEY_Pin)
#define BC26_POWKEY_L		FL_GPIO_ResetOutputPin(MCU_POWKEY_GPIO_Port,MCU_POWKEY_Pin)

#define BC26_EINT3V3_H 		FL_GPIO_SetOutputPin(PSM_EINT3V3_GPIO_Port,PSM_EINT3V3_Pin)
#define BC26_EINT3V3_L		FL_GPIO_ResetOutputPin(PSM_EINT3V3_GPIO_Port,PSM_EINT3V3_Pin)

#define BC26_Reset_H 			FL_GPIO_SetOutputPin(NB_MCU_RESET_GPIO_Port,NB_MCU_RESET_Pin)
#define BC26_Reset_L			FL_GPIO_ResetOutputPin(NB_MCU_RESET_GPIO_Port,NB_MCU_RESET_Pin)

#define NB_PW_ON 			    FL_GPIO_ResetOutputPin(NB_PW_EN_GPIO_Port,NB_PW_EN_Pin)
#define NB_PW_OFF			    FL_GPIO_SetOutputPin(NB_PW_EN_GPIO_Port,NB_PW_EN_Pin)

#define  AT_LOW		        FL_GPIO_ResetOutputPin(DIO2_AT1_GPIO_Port,DIO2_AT1_Pin)
#define  AT_HIGH		      FL_GPIO_SetOutputPin(DIO2_AT1_GPIO_Port,DIO2_AT1_Pin)

#define  WAKE_UP_LOW		  FL_GPIO_ResetOutputPin(DIO1_WK_UP1_GPIO_Port,DIO1_WK_UP1_Pin)
#define  WAKE_UP_HIGH		  FL_GPIO_SetOutputPin(DIO1_WK_UP1_GPIO_Port,DIO1_WK_UP1_Pin)

#define  RSTn_LOW		      FL_GPIO_ResetOutputPin(DIO0_RSTN1_GPIO_Port,DIO0_RSTN1_Pin)
#define  RSTn_HIGH		    FL_GPIO_SetOutputPin(DIO0_RSTN1_GPIO_Port,DIO0_RSTN1_Pin)

#define  SETA_LOW         FL_GPIO_ResetOutputPin(DIO1_WK_UP1_GPIO_Port,DIO1_WK_UP1_Pin)
#define  SETA_HIGH		    FL_GPIO_SetOutputPin(DIO1_WK_UP1_GPIO_Port,DIO1_WK_UP1_Pin)



void Get_Commu_Type(void);





#endif
